SharedPreferences以"Key-Value"對應的方式將資料儲存於XML檔中,使用時只需短短幾行程式碼。當你離開APP後重新啟用時,資料並不會消失,使用Key就可讀取到上一次儲存的資料。
資料儲存格式為XML檔,檔案儲存於DATA/data/當前檔案名稱/shared_prefs文件夾中。
接下來直接從程式碼去切入今天主題:
首先建立兩個Activity,分別為MainActivity與TestActivity
MainActivity:
public class MainActivity extends AppCompatActivity {
SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String name = "Alex";
sharedPreferences = getSharedPreferences("UserData",MODE_PRIVATE);
sharedPreferences.edit()
.putString("valueName",name)
.commit();
Intent intent = new Intent(MainActivity.this,TestActivity.class);
startActivity(intent);
}
}
TestActivity:
public class TestActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
String nameeResponse = getSharedPreferences("UserData",MODE_PRIVATE)
.getString("valueName","");
Log.e("Test",nameeResponse);
}
}
getSharedPreferences("UserData",MODE_PRIVATE)
透過getSharedPreferences用來設定SharedPreferences的偏好設定,並取得物件。
第一個參數用來設定XML的檔名,例如第一個參數設為UserData,那shared_prefs文件夾下會產生UserData.xml檔。
第二個參數用來設定存取權限,參數如下:
寫入檔案時,需要先透過edit()方法取得Editor物件,後putString()方法將欲儲存資料存入XML檔中,最後呼叫commit()方法,這時候資料才真正寫入XML檔中。
sharedPreferences.edit()
.putString("valueName",name)
.commit();
讀取檔案時,首先先取得SharedPreferences物件,後透過get()方法讀取先前已寫入的資料,getString()方法為讀取字串,還有一些可對應其他資料型態的方法,例如:getInt()、getFloat()等方法。
String nameeResponse = getSharedPreferences("UserData",MODE_PRIVATE)
.getString("valueName","");
結果如下:
Log.e("Test",nameeResponse);